﻿using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApp8
{
    class Programe
    {
        //        第二题：

        //编写一个程序，用以接收用户输入的两个浮点型的数值，一个值表示用户想要存放在银行账户中的余额，另一个值表示用户想要从银行账户中提取的金额。
        //实现存取款功能，
        //用户功能选择：1、存款，2、取款
        //取款时：
        //当用户想要提取的金额大于余额时，请手动抛出一个ArgumentOutOfRangeException 参数超出范围的异常，异常信息可以写“取款金额大于余额，请重新输入”
        //，如此以确保取款金额始终不大于当前余额。
        //操作结束，打印输出余额是多少。
        //最后再添加catch一般异常 Exception，使得数据类型转换的异常也能被捕获到。

        static void Main(string[] arges)
        {
            try
            {
                float sum = 0;
                while (true)
                {

                    Console.WriteLine("请选择1、存款，2、取款，3、退出");
                    float key = float.Parse(Console.ReadLine());
                    float a = 0;
                    float b = 0;

                    switch (key)
                    {
                        case 1:
                            Console.WriteLine("请输入你要存款的金额!!!!!!");
                            a = float.Parse(Console.ReadLine());
                            sum = sum + a;
                            Console.WriteLine("存款后余额为{0}", sum);
                            break;
                        case 2:
                            Console.WriteLine("请输入你要取款的金额!");
                            b = float.Parse(Console.ReadLine());
                            if (b > sum)
                            {
                                throw new ArgumentOutOfRangeException("取款金额大于余额，请重新输入吧！！！");
                            }
                            else
                            {
                                sum = sum - b;
                                Console.WriteLine("取款后余额为{0}", sum);
                            }
                            break;
                        case 3:
                            System.Environment.Exit(0);
                            break;
                        default:
                            break;
                    }
                }
            }
            catch (Exception e)
            {

                Console.WriteLine(e.Message);
            }
            finally
            {
                Console.WriteLine("破产了，连饭都吃不上了！！！！！！！！！！！！！");
                hello();
            }
            Console.ReadKey(true);
        }

        private static void hello()
        {
            try
            {
                float sum = 0;
                while (true)
                {

                    Console.WriteLine("请选择1、存款，2、取款，3、退出");
                    float key = float.Parse(Console.ReadLine());
                    float a = 0;
                    float b = 0;

                    switch (key)
                    {
                        case 1:
                            Console.WriteLine("请输入你要存款的金额！！！！！！！！！！！！");
                            a = float.Parse(Console.ReadLine());
                            sum = sum + a;
                            Console.WriteLine("存款后余额为{0}", sum);
                            break;
                        case 2:
                            Console.WriteLine("请输入你要取款的金额！！！");
                            b = float.Parse(Console.ReadLine());
                            if (b > sum)
                            {
                                throw new ArgumentOutOfRangeException("取款金额大于余额，请重新输入吧！！！");
                            }
                            else
                            {
                                sum = sum - b;
                                Console.WriteLine("取款后余额为{0}", sum);
                            }
                            break;
                        case 3:
                            System.Environment.Exit(0);
                            break;
                        default:
                            break;
                    }
                }

            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {

                Console.WriteLine("破产了，连饭都吃不上了！！！！！！！！！！！！！");
                hello();
            }
        }
    }
}
  
